#pragma once
#include <string>
#include <list>

enum card_kind {ATTACK,DEFENSE,MOVE,PLAN,EQUIPMENT};
enum card_status {NORMAL,SELECT,LOCK,BACK,USING,USED};
enum card_color {SPADE,HEART,CLUB,DIAMOND};
enum card_skill{};
enum camp {RED,BLACK};
enum player_status {normal,disorder,select,dead};
enum hero_skill {};



using namespace std;

struct position
{
	int x;
	int y;
};

class hero
{
public:
	hero(void);
	~hero(void);
private:
	int id;
	string photo;
	list<hero_skill> skill;
	int health;
};


class card
{
public:
	card(void);
	~card(void);

private:
	int id;
	card_kind kind;
	string photo;
	int number;
	card_color color;
	card_skill effect;
	card_status status;
};

class player
{
public:
	player(void);
	~player(void);
private:
	int id;
	string name;
	hero h;
	int health;
	int attack;
	int defense;
	list<card> cards;
	camp c;
	int range;
	list<card> equipments;
	player_status status;
	position p;
};

class user
{
public:
	user(void);
	~user(void);

private:
	string id;
	string name;
	list<player> players;
};


class battleGround
{
public:
	battleGround(void);
	~battleGround(void);
private:
	int food[2];
	int harvest[2];
	camp land[6];
	list<player> sequence;
	list<card> deckCards;
	list<card> usedCards;
	player maps[6][6];

};

class gameRescource
{
public:
	gameRescource(void);
	~gameRescource(void);
private:
	list<hero> allHeros;
	list<card> allCards;
	list<user> allUsers;
	list<player> allPlayers;

};
